b22235605e15007429eee89b34c456b74f14e36b,driver-core/src/test/java/com/datastax/driver/core/HostConnectionPoolTest.java,HostConnectionPoolTest,should_not_resurrect_trashed_connection_after_idle_timeout,#,303
Before Change
assertThat(connection2.inFlight.get()).isEqualTo(0);
// Go back under the capacity of 1 connection
completeRequests(51, requests);
assertThat(connection1.inFlight.get()).isEqualTo(50);
assertThat(connection2.inFlight.get()).isEqualTo(0);
// Given enough time, one connection gets trashed (and the implementation picks the first one)
Uninterruptibles.sleepUninterruptibly(20, TimeUnit.SECONDS);
assertThat(pool.connections).containsExactly(connection2);
assertThat(pool.trash).containsExactly(connection1);
// Return trashed connection down to 0 inFlight
completeRequests(50, requests);
assertThat(connection1.inFlight.get()).isEqualTo(0);
// Give enough time for trashed connection to be cleaned up from the trash:
Uninterruptibles.sleepUninterruptibly(30, TimeUnit.SECONDS);
assertThat(pool.connections).containsExactly(connection2);
assertThat(pool.trash).isEmpty();
assertThat(connection1.isClosed()).isTrue();
// Fill the live connection to go over the threshold where a second one is needed
requests.addAll(fillConnectionToThreshold(pool, singletonList(connection2)));
assertThat(connection2.inFlight.get()).isEqualTo(101);
verify(factory, after(2000).times(1)).open(any(HostConnectionPool.class));
assertPoolSize(pool, 2);
After Change
Cluster cluster = createClusterBuilder().withPoolingOptions(new PoolingOptions().setIdleTimeoutSeconds(20)).build();
List<MockRequest> allRequests = newArrayList();
try {
HostConnectionPool pool = createPool(cluster, 1, 2);
Connection.Factory factory = spy(cluster.manager.connectionFactory);
cluster.manager.connectionFactory = factory;
Connection connection1 = pool.connections.get(0);
List<MockRequest> requests = MockRequest.sendMany(NEW_CONNECTION_THRESHOLD, pool);
assertBorrowedConnection(requests, connection1);
allRequests.addAll(requests);
allRequests.add(MockRequest.send(pool));
verify(factory, after(2000).times(1)).open(any(HostConnectionPool.class));
assertPoolSize(pool, 2);
reset(factory);
Connection connection2 = pool.connections.get(1);
assertThat(connection1.inFlight.get()).isEqualTo(101);
assertThat(connection2.inFlight.get()).isEqualTo(0);
// Go back under the capacity of 1 connection
MockRequest.completeMany(51, allRequests);
assertThat(connection1.inFlight.get()).isEqualTo(50);
assertThat(connection2.inFlight.get()).isEqualTo(0);